// 作用域

// 1、全局作用域

var a = 1; // 全局变量
console.log(a);

function fn1() {
    a = 2;
    console.log(a);
}

fn1();

// 2、局部作用域（函数作用域）

function fn2() {
    var b = 3; // 局部变量
    console.log(b);
}

fn2();

// console.log(b); // Uncaught ReferenceError: b is not defined

function fn3() {
    var c = 4; // 局部变量
    return c;
}

console.log(fn3());

// 3、块级作用域

{
    let d = 1;
    console.log(d);
}

// console.log(d); // Uncaught ReferenceError: d is not defined

// 4、动态作用域

var course = "es6"; // 全局变量

function fn4() {
    console.log(course);
}

function fn5() {
    var course = "es7"; // 局部变量
    fn4();
}

fn5(); // es6